
 
import java.awt.Color;
import java.awt.Font;
import java.awt.Image;
 
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
 
public class MyJButtonDemo extends JFrame {
 
	private JPanel jpanel = new JPanel();// 中间组件
 
	private JButton jba = new JButton("普通按钮");
 
	private JButton jbb = new JButton("带颜色按钮");
 
	private JButton jbc = new JButton("不可编辑按钮");
 
	private JButton jbd = new JButton("按钮的 文本、字体 和 字体颜色");
 
	private JButton jbe = new JButton();
 
	private JButton jbf = new JButton("边框");
 
	private JButton jbg = new JButton("填充");
 
	private JButton jbh = new JButton("焦点");
 
	private JButton jbi = new JButton("按钮",
			new ImageIcon(new ImageIcon("images\\3.jpeg").getImage().getScaledInstance(100, 100, Image.SCALE_DEFAULT)));
 
	public MyJButtonDemo() {
		this.setTitle("按钮演示");
		this.setSize(400, 500);
		this.setDefaultCloseOperation(2);
		this.setLocationRelativeTo(null);
 
		// 1.普通按钮
		jpanel.add(jba);
 
		// 2.带颜色的按钮
		jbb.setBackground(Color.red);
		jpanel.add(jbb);
 
		// 3.不可编辑按钮
		jbc.setEnabled(false);
		jpanel.add(jbc);
 
		// 4.设置按钮的 文本、字体 和 字体颜色
		// setText(String text)
		// setFont(Font font)
		// setForeground(Color fg)
		jbd.setText("按钮的文本、字体和字体颜色");
		jbd.setFont(new Font("宋体", Font.BOLD, 20));
		jbd.setForeground(Color.red);
		jpanel.add(jbd);
 
		// 5
		// setIcon(Icon defaultIcon) //注意了这是改的默认图标。三态中的默认，即鼠标未在其上的时候。
		// setPressedIcon(Icon pressedIcon) //按下时的图标。
		// setRolloverIcon(Icon rolloverIcon) //鼠标经过时的图标。
		jbe.setIcon(new ImageIcon(
				new ImageIcon("images\\3.jpeg").getImage().getScaledInstance(100, 100, Image.SCALE_DEFAULT)));
		jbe.setPressedIcon(new ImageIcon(
				new ImageIcon("images\\2.jpeg").getImage().getScaledInstance(100, 100, Image.SCALE_DEFAULT)));
		jbe.setRolloverIcon(new ImageIcon(
				new ImageIcon("images\\1.jpeg").getImage().getScaledInstance(100, 100, Image.SCALE_DEFAULT)));
		jpanel.add(jbe);
 
		// 是否绘制边框（设置不绘制边框，再结合上面三个设置按钮状态图片的方法，可实现自定义按钮）
		// void setBorderPainted(boolean b);
		jbf.setBorderPainted(false);
		jpanel.add(jbf);
 
		// setContentAreaFilled(boolean b) //是否填充，如果你的自定义图片不是矩形或存在空白边距，可以设为 false
		// 使按钮看起来透明。
		jbg.setContentAreaFilled(true);
		jpanel.add(jbg);
 
		// setFocusPainted(boolean b) //是否绘制焦点（例如浅色虚线框或者加粗的边框表明按钮当前有焦点）。
		jbh.setFocusPainted(true);
		jpanel.add(jbh);
 
		jbi.setHorizontalTextPosition(SwingConstants.CENTER); // 水平方向文本在图片中心
		jbi.setVerticalTextPosition(SwingConstants.BOTTOM);// 垂直方向文本在图片下方
		jpanel.add(jbi);
 
		this.getContentPane().add(jpanel);
		this.setVisible(true);
	}
 
	public static void main(String[] args) {
		new MyJButtonDemo();
	}
 
}